package com.shujia.five;

import org.junit.Test;

import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;

public class SetDemo {


    @Test
    public void test1() {
        Set<String> set = new LinkedHashSet<>();
        set.add("重庆李子坝站");
        set.add("华山长空栈道");
        set.add("丽江古城");
        set.add("华山长空栈道");

        for (String str : set) {
            System.out.println(str);
        }

    }

    /*
    如果两个元素的 equals() 方法返回 true，但它们的 hashCode() 返回值不相等，
    hashSet 将会把它们存储在不同的位置，但依然可以添加成功。
     */
    public static void main(String[] args) {
        /*
        set里面保存自定义的数据类型, 一定要重写hashCode和equals方法
        如果不重写, Set无法排重
         */
        Set<Person> set = new HashSet();
        Person p1 = new Person("zs");
        Person p2 = new Person("zs");
        Person p3 = new Person("zs");

        System.out.println(p1.hashCode());
        System.out.println(p2.hashCode());
        System.out.println(p3.hashCode());
        set.add(p1);
        set.add(p2);
        set.add(p3);

        System.out.println(set);

    }
}
